)Laravel 5( منبع ا ؼ فطی ضن الضا تنظیم ثؿبیز ضاؾر

Similar documents
این کتاب برای چه کسانی است ودرباره چیست

برناهه آگاهسازی و اطالعرسانی عووهی در برابر سوانح استراتژیهای اطالعرسانی و آگاهسازی عووهی در هدیریت سوانح

م تی پل ئوژ ی ر س بر زت ی علله ز

ل ل م ل ا ن ی ب ت ر ا ج ت ش ر ت س گ ر د ی س ا ی س و ی ن ا گ ر ز ا ب ی ر ا ج ت د ا ز آ ق ط ا ن م ش ق ن )

1 -Mallory 2 - Sommer 3 -Malatest

Islamic Azad University Khomeinishahr Branch. ٤ National Conference of Psychology, Consultation and social work

ارائه مجموعه راهکارهای مهندسی مدیریت کیفیت و بهره وری با رویکرد مهندسی خالقیت زیست الگو

ث ٦ ١ ب ذسا دا طگا ػاله طثاطثایی دا طنذ هذیشیت حساتذاسی يوسال د م دسسس تش اه سیضی استشاتظیل استاد : ج اب آقای دمتش حجاسیاى ت ي م ذ : هحوذ مشم فش

ز ا س ه ب و ی ز ا س و ن ر د ه ن ا ی و ج ت ک ر ا ش م د ر ک ی و ر ن

ی و ن ه ع ل ق د و م ح م ن

The Effectiveness of Bibliotherapy on the Fear of the Hospital Environment for Children with Cancer

تشسسی ساتغ سالهت ساصها ی قذست هذیشاى دس اداسات تشتیتتذ ی استاى اصف اى تش اساس هذل د ػاهلی قذست

آ ع ا و ن ا و ک ی ن و ر ت ک ل ا ت ر ا ج ت م ی ه ا ف م ا ب ی ی ا ن ش آ. 2 ش ز ر ا ه ر ی ج ن ز ر ب ک ی ن و ر ت ک ل ا ت ر ا ج ت ر ی ث ا ت ا ب ی ی ا ن ش

Source: Authors. Source: (Binesh,2006)

ارزیاتی عولکرد تر اه ریسی ش تیک در هذلسازی دهای هت سط ها ا در و ای اقلیوی هختلف ایراى

بررسي خواص فيزيكي ليزر و تاثير آن بر روي بافت

و ر س م ی ح ر ن و س و م ف ج ن ر ی م ه ل و ک ش ک ی ر ق ا ب ی ل ع ن

تىايب سببی در زبان فارسی

تررسی اثر انذازه سلول مذل رقومی ارتفاعی تر صحت شثیهسازی رواناب )مطالعه موردی: حوزه آتخیس کن(

Proposing a Model for Optimization of Integrated Supply Chain: Using Multi-Objective Stochastic Programming

The Methodology of Ahlulbayt's Lexical Interpretation based on Interpretive Narrations of the Osul Kafi

ر ی د م ی د ه م ر. ک س م

مدل خودرانص. System Identification Determination of Ship Maneuvering Hydrodynamic Coefficients Based on Free-running Model Test Results طری ه ذسی دریا

ب م ی س ا ض ر ن ف ج ن س ا ب ع ن

س ی ر و ت ت ع ن ص ه ا گ ی ا ج ر ظ ن ه ط ق ن ز ا ی

ي) ب ا ض ا ه ب م و د ه ا م ش م ت ف ه ل ا س ) ی ا ه ق ط ن م ی ز ی ه م ا ن ب ( جغافیا پژوهشی ی م ل ع ه م ا ن ل ص ف 2 9 ه م د ق م د د و ب ه ب ن آ

ا ج ی ا ب ر ذ آ ی ر و ه م ج و ن ا ر ی ا ی م ال س ا ی ر و ه م ج ی د ر و م ه ع ل ا ط م ی

عدالت سازمانی و تاث ری آن بر آوا و عملکرد کارکنان

ش خ و م ر گ ق ط ا ن م ر د ی ت ر ا ر ح ط ی ا ر ش ی ی ا س ا ن ش ر

ئ ا س ر ا پ ا س ی ر پ 1

اوتقال بیهسازماوی داوص مدیریت پريش کلید در سازمان ای پريش مح ر

ف رست هطالة چکیذ هطالة... هقذه... فصل ا ل... س س ر چیست فصل د م... هعرفی س س ر آلتراس یک فصل س م... کا ال ارتثاطی سریال)استا ذاردRS232 ) فصل چ ارم...

اعتثاریاتی مقياض تجارب تجسی اي و ج اوان در جامع ایران. Validation of Adolescent Dissociative Experiences Scale in Iran

دوره 7 شماره 2 مجله فناوری اطالعات در طراحی مهندسی. Information Technology on Engineering Design

55 تحلیل ا میت خذمات آم سضی در اقتصاد ایزان با استفاد اس ريیکزد ماتزیس حسابذاری اجتماعی

بررظی رابط يجذان کاری با مؤلف ای تع ذ ظازماوی دبیران مذرظ ای مت ظط پعراو ديلتی ؼ ر ت ران

م سىجی اثربخشی طرحيار درماوی ي ريایت درماوی ىگام ب م پی سته ر یک از آن ا با بروام غىیسازی زواش یی بر گرایش ب پیمانشکىی زواش یی ي رضایت زواش یی

ر ک ل م ع ر د ی ی ا ی ف ا ر غ ج و ی ن ا ک م ل م ا و ع و ا ه ص خ ا ش 1 ا ر ی ا ی ر و ا ن ف و م ل ع ی ا ه ک ر ا پ ی

در آبهاي سواحل استان مازندران

) ل و ئ س م ه د ن س ی و ن ( ا ن ی م و ر م ی ه ا ر ب ا 2-

ا ه ت ف ا ب ی ز ا س و ن و ی ز ا س ه ب ر ب ی ع ا م ت ج ا ه ی ا م ر س ی ر ا ذ گ ر ث ا و ه ط ب ا ر ل ی ل ح ت ) ت ل و د ه م ط ا ف ز

بزرسي ویژگيهای روانسنجي مقياس رضایتمندی سوجيت در گزوه معلمان متأهل سن شهز تهزان

ش ز و م آ ه. 2.Educational justice 3.Promising 4.Social mobility 5.Critical thinking 6.Education 7.Commoner 8.Uniqe 9.

س ا ي م ا ز ل ا ت ا س ل ج ي م ا م ت ر د ه چ ر ت ف د ن ت ش ا د ه ا ر م ه ب ه- 4 د.

ل ا د ب ع ا ض ر د م ح م 1 ر ا ب خ ا د م ح م ن

مقذمهای بز فزآینذ ارسیابی ریسک خطکسالی کطاورسی

پژ ص ای هذیشیت عو هی سال د ن ضواس سی پ جن ب اس 1396 تاسیخ پزیشش: 96/2/30

ی ا ز ف ا ی س ا ی س و ی ع ا م ت ج ا ی د ا ص ت ق ا ت ی ع ض و د و ب ه ب ت ه ج م ه م ی ع ب ن م ن ا و ن ع ه ب و ه د ر ک ک ر د خوبی به ا ر ت ع ن ص ن ی ا ت

ه ا ن پ ت ع ی ر ش ی ل و د ی ج م ن

) 0 2 ص 4931 ی س ا ی ل ا و ر و پ ر و ش ا س ( د ش ا ب ه ت ش ا د ن د و ج و ا ه ن آ ت ی و ر و

ر گ ش د ر گ ه ع س و ت ر د ن آ ش ق ن و 1

فائس ابرا یمی MMPI. إ ف (

و پ ش ن ا د ی د ا ه ل ا د ب ع د ی س ن

گا کوی ت پذیذ تغییز اللین را کار ای ساسش تا آى

ن ا ج ن ز ر ه ش : ی د ر و م Todim ه ر ا عی م ن

شناسایی فرصتها و چالشهای فرهنگی ورزش استان مازندران

خصوصیات روانسنجی پرسشنامه روابط میانی دلبستگی برای دورهی سنی میانی کودکی

ز ا د ن ت ر ا ب ع ق ی ق ح ت.

Analyzing and Ranking Factors Affecting Organizational Rip Currents

ر د ر ک ش ه ر ش ه ر د ی رهش ب ز س ی

مدیریت ارتباط با مشتری از دیدگاه روانشناسی

کنوانسیون نیویورک و رژیم اجرایی آن

ی و گ ت ف گ ی س ا ر ک و م د و ل ا ر ب ی ل ی س ا ر ک و م د ی ق ی ب ط ت ی ه س ی ا ق م ی

ن ی د ا ی ن ب ی ر و ئ ت ش و ر س ا س ا ه

REQUEST FOR QUOTATION For Supply of Saffron Corm For Herat and Niromz Province DATE: May 23, 2018

ه ش ر ق ا ب ش خ ب ی ا ه ا ت س و ر ی د ر و م ن

1693 ز ا پ م ر ا ه چ ه ر ا م ش م ه ن ل ا س ن ا س ن ا ا ف ا ر غ ج ر د و ن ا ه رش گ ن ش ه و ژ پ - ي م ل ع ه م ا ن ل ص ف ه م د ق م ط ب ت ر م ي د ن

ط ی ح م ت س ی ز ی ر ا د ی ا پ ر ب د ی ک أ ت ا ب ن ا ر ه ت ر ه ش ک ی ل ن ی س ح م ال غ م ی ح ر ن

ا س ت اب ت3 ار ه م ش فت م ه ل اس

ا ر ی ا ت ی ن م ا ا ب ه ط ب ا ر ر د ن ا ت س ر ل ک ی ت ی ل پ و ئ ژ ش ق ن ن د ا ر م ش و ا ی س 1

آ ر ی ث أ ت و ن ا ر گ ی ز ا ب ر ب د ی ک أ ت ا ب ه ی ر و س ن ا ر ح ب ل ی ل ح ت س

محاسبه توزیع فشار انفجار پیرامون اجسام سیلندری شکل با بهرهگیری از شبیهسازی عددی انفجار -2-1 تی ان تی هعادل

ل ا م و س ر و ش ک ی ی ا ی ر د ق ط ا ن م ت ی ن م ا ر ب ی ی ا ی ر د ی د ز د ر ی ث ا ت ی

ت ش ا د ی ر و ش ک ت ا م ی س ق ت ن و ن ا ق ر ب ی ت ی ن م ا د ع ب ت ی م ک ا ح ی ی ا ی ف ا ر غ ج ی ن گ م ه م د ع ی د ر ک ر ا ک ی

ن ا ت س ب ا ت م و س ه ر ا م ش م ه ن ل ا س م

تحلیلی بز نقش سیاستگذاریها در توسعه و عمزان گزدشگزی در

غ ا ر ف ل ر ظ ن ی ن ا ب م ن

ر گ ش د ر گ ف د ه ی ا ه ا ت س و ر ی د ا ص ت ق ا ت ال و ح ت ر د ی ر گ ش د ر گ ش ق ن ل ی ل ح ت 1

ه ع س و ت و ی ل ا س ر ا ه و ج و ت ر ج ا ه م ث ح ب ه ب ه ج و ت ا ب د ن ه اای ا ه د م آ ر د ق ی ر ط ز ا ی ل م ه ع س و ت ت ی ا ه ن ر د و ی ر ه ش و ی ی ا

بانکهای ایرانی چکیذه فب ی و یسی: سيطيت زا ف كتطی س ث ك سيطيت زا ف كتطی وؿت زا ف اظ كتطی نسترن حاجی حیذری زضيبفت: 1392/10/1

ر تب ی ا م ر له لسس لی ل ت ح ه و د سر فت باف ب

ا ه ق ط ن م ن ز ا و ت ن ا ر ی ا ی د ر ب ه ا ر ش ق ن و ه ی ر و س ت ال و ح ت ن

عجيه شدن با شغل در پرستاران ي تأثير آن بر رفتار شهريودي سازماوي: وقش مياوجيگري رضايتمىدي شغلي

Ramadhan. Duas for the Month of. Dua. iftitah. Dua. tawassul. Ya Aliyu ya adheem. Allahuma. rabba shahri ramadhan.

م ا ی ص ر ی د ق ه) ن ا ت س ب ا ت م و س ه ر ا م ش م ه ن ل ا س ی

ا ر ی ا ه و ق ل ا ب ت ی ف ر ظ 1-2- ر

2. The Information Age: Economy, Society and Culture 3. Manuel Castells

ر ب ک ا ی ل ع ل ی ع ا م س ا ن

ر ا ف غ د م ح م ن س ا ب ع د م ح ا ن

I( O S در سوبن متب ل مزاجع کىىد ب مزاکش بزرسی رابط ابعبد مثلث عطق گستزش خ د بب ضم ل دیگزان در خ د) مطبير ض ز مط د س زاق زمبوی ویک: و یسىد مسئ ل

فذد اػیذی ث ك ست ی ی ش یذس وؼیذ پتبػی الص ثشای خ ثی وشد اػیذ بی چشة آصاد خ د دس یضا پیشفت یذس یض س غ ب چشثی ب ی ثبؿذ صیشا ای اد تحت ؿشایظ

ا ج ن ز ر ه ش ر د ه د ا و ن ا خ ی گ ن ه ر ف ی ر ی ذ پ ب ی س آ و ی ن ی د ت ا د ا ق ت ع ا ن ی ب ه ط ب ا ر 2

ا آ راه و ده ای ای ر ا ت و ف ا و د دارد. م ا در و ات آی ز ن م رآ ی د ر ن آی ز ن از م ا ار و م ا ار ی رد ا ده در ز ن

د م عرب ن م ا لعم س ي د ر يز م

نظسیهپسداشی داده تنیاد دز ضسکتهای هلدینگ

ن ا ت س ب ا ت م و س ه ر ا م ش م ه د ل ا س ت و ر س م ی ح ر ن

ن ا و د ر ک ز ی و ر پ ن ا ر ی ج ر ف ا ض ر ل ا د ب ع ن

ی ی ه د ل ک ش : ت س ا ر ی ز ح ر ش ه ب ن و ت ل د ی م ه ا گ د ی د ز ا ن ا ک م ی ا ر ب ل آ ه د ی ا ی ز ا س د ن ر ب ک ی ل ح ا ر م و ا ز ج ا و

ه ز ک ن و ه ن ی م ا د م ح م ن

ن ا ت س ب ا ت م و س ه ر ا م ش م ه ن ل ا س ه

Transcription:

5 آموزش فارسی الراول ۵ )Laravel 5( منبع ا ؼ فطی ضن الضا )الضا یؿشب( تنظیم ثؿبیز ضاؾر )ا یط حؿی حجیجی( Rasekhoon.net ص ف ح 1

ف طؾز 5 ------------------------------------------------------------------------------- آموزش نصب الراول 5 پیکشب ذی السا ل 5---------------------------------------------------------------------------------- 6 دستشسی ب هقادیش پیکش ب ذی : ----------------------------------------------------------------------- 8 پوشه بندی جدید الراول --------------------------------------------------------------------------- 5 9 روتینگ ROUTING در الراول 10------------------------------------------------------------------ 5 هسیش با پاساهتش ------------------------------------------------------------------------------------12 افض دى عباست ه ظن ب پاساهتش ا---------------------------------------------------------------------- 12 هسیشد ی ب یک ک تشلش اکشي ---------------------------------------------------------------------13 اهگزاسی هسیش------------------------------------------------------------------------------------ 13 هسیشد ی گش ی---------------------------------------------------------------------------------- 14 کنترلر ها در الراول -------------------------------------------------------------------------------14 5 ک تشلش ا فضای ام( namespace ) -----------------------------------------------------------------15 استفاد اص middleware دس ک تشلش ------------------------------------------------------------------16 17------------------------------------------------------------------------------ ک تشلش ای RESTful کار با view در الراول -----------------------------------------------------------------------------18 5 بشسسی ج د فایلview ----------------------------------------------------------------------------19 س ذس کشدى view اص عشیق هسیش فایل -----------------------------------------------------------------19 درخواست ه یا HTTP در الراول -------------------------------------------------------------------21 5 ک کی ا----------------------------------------------------------------------------------------- 23 فایل ا ------------------------------------------------------------------------------------------23 پاسخ ه یا HTTP در الراول 5------------------------------------------------------------------------24 پاسخ ساد ---------------------------------------------------------------------------------------24 ایجاد پاسخ دلخ ا ---------------------------------------------------------------------------------24 25---------------------------------------------------------------------------------------Redirect ایجاد پاسخ ب ص ستJSON -------------------------------------------------------------------------26 ایجاد پاسخ ب ص ست دا ل د فایل ---------------------------------------------------------------------26 blade در الراول 27--------------------------------------------------------------------------------- 5 کاس با ه ت س قالب Blade ایجادLayout -------------------------------------------------------------27 تعشیف یک Layout ساد --------------------------------------------------------------------------- 27 چاپ داد یا هتغیش ا دسblade ---------------------------------------------------------------------28 Rasekhoon.net ص ف ح 2

ی ا ی ا ای کل د کشدى فایل view دس view دیگش --------------------------------------------------------------29 ت ضیحات دسBlade -------------------------------------------------------------------------------30 توابع کمکی در الراول 5-----------------------------------------------------------------------------30 Middleware ها در الراول -----------------------------------------------------------------------32 5 تعشیف یکmiddleware --------------------------------------------------------------------------32 34---------------------------------------------------------------------------- Session ها در الراول 5 رخیش هقذاس دس یک سشي --------------------------------------------------------------------------34 افض دى هقذاس ب یک session آسای ای ----------------------------------------------------------------34 داد فلش ------------------------------------------------------------------------------------35 رخیش سشي ا دس دیتابیس -------------------------------------------------------------------------35 اعتبار سنجی در الراول ---------------------------------------------------------------------------36 5 وایش پیغام خغا دسview ---------------------------------------------------------------------39 ایجاد یک قا ى اعتباس س جی دلخ ا ------------------------------------------------------------------39 ایجاد پیغام خغای دلخ ا بشای ق ا یي اعتباسس جی------------------------------------------------------- 39 کار با دیتابیس در الراول --------------------------------------------------------------------------41 5 هباحث پای کاس با دیتابیس --------------------------------------------------------------------------41 41------------------------------------------------------------------------- اجشای ک ئشی با کالس DB کاس با دیتابیس باBuilder -------------------------------------------------------------------42 Query استفاد اص OR یا AND بشای جذا کشدى ششط ا --------------------------------------------------------43 استفاد اص هتذ ای جاد یی ششط ---------------------------------------------------------------------43 استفاد اص Having Group By Order By با ک ئشی بیلذس 44------------------------------------------- JOINکشدى-------------------------------------------------------------------------------------- 44 دسج کشدى( INSERT ) -----------------------------------------------------------------------------45 ب س صسسا ی( UPDATE ) ---------------------------------------------------------------------------45 حزف کشدى( Delete ) -----------------------------------------------------------------------------46 قفل کشدى جذ ل گام اجشای عولیات 47---------------------------------------------------------------- Eloquent در الراول 47----------------------------------------------------------------------------- 5 دسج کشدى باEloquent ---------------------------------------------------------------------------48 ب س صسسا ی سک سد ا -------------------------------------------------------------------------------49 حزف سک سد ا ------------------------------------------------------------------------------------49 Relationships جداول در الراول 5------------------------------------------------------------------50 Rasekhoon.net ص ف ح 3

استباعات( Relationships ) ------------------------------------------------------------------------50 50--------------------------------------------------------------------------- استباطMany One To استباطMany 51-------------------------------------------------------------------------- Many To دسج کشدى دس جذ ل سابغ داس -----------------------------------------------------------------------52 صفحه بندی در الراول ----------------------------------------------------------------------------53 5 Migration در الراول 55---------------------------------------------------------------------------- 5 ایجاد یکmigration -----------------------------------------------------------------------------55 Hash در الراول 5----------------------------------------------------------------------------------60 61---------------------------------------------------------------------- Authentication در الراول 5 Authenticationی کاسبش خاص: ------------------------------------------------------------------63 اعتباس س جی کاسبش بذ ى عول الگیي: -----------------------------------------------------------------63 الگیي کشدى کاسبش فقظ بشای یک دسخ است: -----------------------------------------------------------64 64------------------------------------------------------------------------Authentication Events آپلود فایل در الراول ------------------------------------------------------------------------------64 5 ارسال ایمیل در الراول ----------------------------------------------------------------------------67 5 Reset Password در الراول 70----------------------------------------------------------------------5 افسودن کالس و پکیج در الراول --------------------------------------------------------------------74 5 Rasekhoon.net ص ف ح 4

آه صش صب السا ل 5 ذت لج اظ ای ى ثر ا یس فطی ضن الضا ۵ ض هت و یس ثبیس غ ئ ثبقیس و extension بی ظیط ض ی ؾط ضسب هت ثبقس ضغ PHP ؾط ض ثبیس ۵ ۴ یب ثیكشط ثبقس Mcrypt OpenSSL Mbstring Tokenizer ثطای اعالع اظ فؼب ث ز ای extension ب ی ؿر php ض ی ؾیؿش ی س یس ثب اؾشفبز اظ زؾش ض phpinfo)( ث ای اعالػبر زؾز دیسا و یس زض ن ضر ػس هت طوسا ثب س ػ ث ؾیؿش ػب ش السا ث هت فؼب وطز آ ب ثى یس.)ا جش ا ط لطاض ثبق الضا ضا ض ی وب ذی سط ذ زس هت و یس یبظی ث ای حؿبؾیز ب یؿز ا طextension ای هت ج ز یش یس ثب اؾشفبز اظ فبی php.ini ا ض فؼب و یس. ) ث شطی ضا هت الضا ۵ اؾشفبز اظ composer اؾز و زض ن ضر هت ج ز ض ی ؾیؿش سب ی س ا یس اظ ای ؼب آ ضا زضیبفز هت و یس.)ا جش ای ؾبیز ؼبز فبضؾی قس زاض.ثطای ض ز ث آ ای ؼب و یه بییس( سط ی ب ض س ی ی وؽ یب cmd ض س ی ی س ظ ثبظ و یس اثشسا ث زایطوش ضی و یر ا یس فطی ضن ض زاذ ف هت و یس )د ق root ط افعاض قجی ؾبظ ؾط سب ظ xampp یب lamp یب )wamp ثط یس ظال ثب یىی اظ زؾش ضار ظیط و ا جش ى اؾز ىب د ق root زض ؾیؿش ق ب شفب ر ثبقس: کذ: // for linux ubuntu cd /var/www/html //for windows and xampp cd c:\xampp\htdocs //for windows and wamp cd c:\wamp\www Rasekhoon.net ص ف ح 5

حبال ی س یس ثب سبیخ زؾش ض ظیط س ی سط ی ب آذطی ؿر الضا ض زا ز هت و یس و یه د ق ث ب laravel ؾبذش یك ز: کذ: composer create-project laravel/laravel --prefer-dist ىش : افطازی و اظ ی وؽ اؾشفبز ی و س ثبیس ث د ق بی vendor storage ؼ ظ قش فبی ض ث ف ثس یس. composer و ن ضسی زض بی فبی یش ا یس زاضز كى ی یب ق ز ی هت ق ب ؾیؿش زض فطی ضن الضا ضا اظ آزضؼ ظیط زضیبفز زض ؿیط د ق root ؾط ضسب extract و یس: http://fian.my.id/larapack/ پیکشب ذی السا ل 5 س ی د ق ان ی الضا یه فبی ث ب env. ػ ز زاضز و ی س ا یس س ظی بر ثط ب سب زیشبثیؽ دط غ ضا زض ای ؼب سؼیی و یس: کذ: APP_ENV=local APP_DEBUG=true APP_KEY=zGKCjTPbzET3WiHhKCxSpTBNCuUVWWLc DB_HOST=localhost DB_DATABASE=learninglaravel DB_USERNAME=root DB_PASSWORD=secret ث ع ض ظب ا ط APP_DEBUG ضا ض ی true ؾز و یس ذغب بی ثط ب یؿی زض ب وس یؿی ثطایشب لبث كب س ذ ا س ث ز بؾت ثطای حب ز development ؿز زض ب آد ز ؾبیز ض ی بؾز آ ضا fasle لطاض ز یس. ث شط مساض APP_KEY ضا ثب سبیخ زؾش ض ظیط زض سط ی ب سغییط ز ی : کذ: php artisan key:generate Rasekhoon.net ص ف ح 6

ؾبیط س ظی بر ض یش یس زض د ق config زض فبی ضز ظط اػ ب و یس. ث ع ض ظب ی س ا یس زض فبی app.php مساض timezone ض ث Asia/Tehran سغییط ز یس. توضیحات بیشتر در مورد پیکربنذی الراول ق ب ی س ا یس زاذ فبی app.php زض د ق config س ظی بر ثط ب ضا اػ ب و یس. س ظی بر ث ن ضر یه ػفز و یس/ مساض ؿش س. ثؼضی اظ آیش ب مساض ذ زقب ضا ا س ؾظ سبثغ و ىی env اظ فبی env. الغ زض زاثطوش ضی root دط غ و زض دؿز لج ی س ضیح زاز ی یط س ث ع ض ظب : 'debug' => env('app_debug'), 'key' => env('app_key', 'SomeRandomString'), key debug مساض ذ ز ض اظ فبی.env ی یط س زض ن ضسی و زض فبی.env ثطایكب مساضی ؾز ىطز ثبقی ی س ا ی ث سبثغ env)( دبضا شط ز ی ثس ی و كب ط مساض آ ؿز. زض ظب ثبال key ث ای ن ضر اؾز ا ط زض فبی.env آ ضا حصف و ی اظ ای مساض دیف فطو اؾشفبز ذ ا س وطز. در زیر توضیح مختصری برای هر آیتم آن میذهم : : debug ا ط مساض آ ضا true ؾز و یس ثط ب زض س development ذ ا س ث ز ذغب بی ثط ب كب زاز ی ق ز ا ط false ثبقس زض س production ی ثبقس بؾت ثطای publish اؾشفبز بیی ثط ب ؿز. url آزضؼ : url دط غ ضا زض ای ؼب ؾز یى ی ظال http://localhost/laravel/public : timezone لؼیز ظ ب ی ضا كرم ی و ی و ثطای ظب زض وك ض ایطا Asia/Tehran ؾز ی و ی. : locale زض ؿیط resources/lang ی س ا ی یه د ق زی ط ث ب fa ایؼبز وطز سب زض آ دیغب ب ش فبضؾی ضا سبیخ و ی سب زض ثط ب اظ آ ب اؾشفبز و ی. ث ع ض ظب یه وبضثطز آ زض فبضؾی ؾبظی دیغب بی اػشجبضؾ ؼی فط ب ی ثبقس. مساض ای آیش ضا fa و ب آ د ق و ایؼبز وطزی ؾز یى ی. : fallback_locale زض ن ضسی و locale ضز ظط ثطای آ ضقش ػ ز ج ز اظ ای locale اؾشفبز ق ز. : key و یس ثط ب و یه ضقش سهبزفی ؿز زض ض ع بضی بی ثط ب س ؾظ الضا ضز اؾشفبز لطاض ی یطز. ح ؾز وطز آ ضا زض دؿز لج ی س ضیح زاز. Rasekhoon.net ص ف ح 7

ؾبیط اضز ضا زض ػبی بؾت ذ ز س ضیح ذ ا زاز. زایطوش ضی app سحز namespace ب App اظ فطو دیف ع ض ث الضا ۵ ث ای اؾشفبز و یى س ب ایؼبز والؼ بیشب اظ آ اؾشفبز یى یس و ق ب ی س ا یس ثب اؾشفبز اظ زؾش ض ظیط سبیخ زض سط ی ب آ فضبی ب ضا ث ب ز ر ا شب سغییط ز یس ظال زض ظب ظیط آ ضا ث Hamo سغییط زاز : کذ: php artisan app:name Hamo ثؼس اظ اػطای ای زؾش ض الضا ث ع ض ذ زوبض س ب namespace بی اؾشفبز قس زض والؼ بیشب ضا ث ب ػسیس سغییط ذ ا س زاز. دستشسی ب هقادیش پیکش ب ذی : ی س ا یس مبزیط config ثب اؾشفبز اظ والؼ Config ض ثب اؾشفبز اظ شس get ثسؾز ثیبضیس یب مساض ػسیسی ضا ثب اؾشفبز اظ شس set ؾز و یس ث ظب بی ظیط س ػ و یس: ی ی س ا یس اظ سبثغ و ىی config اؾشفبز و یس: $value = Config::get('app.timezone'); Config::set('app.timezone', 'Asia/Tehran'); $value = config('app.timezone'); Rasekhoon.net ص ف ح 8

پ ض ب ذی جذیذ السا ل 5 زض ثبال سه یطی اظ زایطوش ضی root الضا لطاض زاز. زض ظیط زض ضز آ ب س ضیحبسی ی ز : : app ای زایطوش ضی حب ی س ب وس بی ثط ب سب اظ ػ و شط ط ب س بی ثط ب سب ؿز. ثب ای زایطوش ضی ظیبز ؾط وبض ذ ا ی زاقز. :bootstrap ای زایطوش ضی حب ی یه ؾطی فبی ثطای autoloading ضا ا ساظی :config حب ی س ب فبی بی دیىطث سی ثط ب سب اؾز. : database حب ی فبی بی seed migration اؾز. فطی ضن ؿز. : public فبی بی اؾشبسیه front-end ثط ب سب اظ لجی javascript, css, images زض ای ؼب لطاض ی ط س. :resources زض ای زایطوش ضی فبی بی view ثط ب فبی بی loacale ظثب زض آ لطاض ی یط س. :storage زض ای زایطوش ضی فبی بیی و س ؾظ س ض د ؾش blade وب ذبی ی ق س ی ىب شذیط ؾبظی فبی بی ؾك وف ؾبیط فبی بیی و س ؾظ فطی ضن ایؼبز ی ق س ی ثبقس. :test حب ی فبی بی سؿز ذ زوبض ثط ب اؾز. :vendor حب ی س ب third-party ب اثؿش ی بیی و س ؾظ composer ث ثط ب اضبف ی ق س ؿز. Rasekhoon.net ص ف ح 9

زاذ زایطوش ضی app ی س ا یس س ب ضا ایؼبز و یس ی زض ؿیط app/http/controllers ی س ا یس و شط ط بی ثط ب ضا ایؼبز و ی ی فبی routes.php و زض ؿیط app/http لطاض زاضز و سیطیز ؿیط ب اظ آ اؾشفبز یى ی اظػ فبی ب زایطوش ضی بی دطوبضثطز ب زض ای فطی ضن ؿش س. resources/views فبی بی view ؿیط زض ضا ثط ب ح ثؼسی بی لؿ ز زض ز ی. ی لطاض ؿیطز ی ایؼبز و شط ط ی ب ضا ذ ا ی آ ذز. س تی گ ROUTING دس السا ل 5 اظ عیتتز تتبی فتتطی ضن الضا ؿتتجز ثتت ؾتتبیط فطی تت ضن تتبی PHP جحتتض Routing آ اؾتتز وتت تتی ستت ا تتسیطیز ذتت ثی ض ی ؿتتیط ب زاقتتز. زض ؿتتیط app/http فبیتت routes.php تتی ستتت ا ی س تتتب ی ؿتتتیط بی ثط ب تتت ضا زض آ ؼتتتب سؼطیتتت تتتسیطیز و تتتی.ایتتت فبیتتت س ؾتتتظ وتتتالؼ App\Providers\RouteServiceProvider ثبض عاضی یك ز. Route::get('/', function() return 'Hello World'; ); get http والؼ Route ع و زاضز شس ؿ س زضذ اؾز كرم ضا شس ثبال ظب زض یى س. زض فمظ ذ اؾز بی GET ث ای ؿیط ضا لج یى س. ؾبیط شس ب و ع زضذ اؾز http ضا كرم یى س, post put, patch, delete ی ثبق س. ای شس ز سب دبضا شط ی یطز و ا ی ؿیطی اؾز و ثؼس اظ ب زا ؾبیز ی آیس ظال زض آزضؼ http://www.example.com/about ؿیطی و اضز یى ی about اؾز. زض دبضا شط ز ی ی س ا ی ثس اؾشفبز اظ و شط ط اوك ثب زاز یه سبثغ ثی ب زض ی ض سط آ ضا سیطیز و ی. Rasekhoon.net ص ف ح 10

والؼ Route زاضای شس زی طی ث ب match ؿز و ی س ا ی ؿ س ع زضذ اؾز http ضا ث یه ؿیط ؼبظ و ی زض ظب ظیط ؿیط طز ع زضذ اؾز POST GET ضا لج ی و س : Route::match(['get', 'post'], '/', function() return 'Hello World'; ); زض ن ضسی و ثر ا ی ؿیط زض ذ اؾز ب ضا لج و یس اظ شس any اؾشفبز یى ی ظال آزضؼ http://www.example.com/foo ط زضذ اؾشی ضا لج یى س: Route::any('foo', function() return 'Hello World'; ); HTMLزضذ اؾز بی PUT, DELETE یب PATCH ضا دكشیجب ی ی و س ثطای ای ى یه فط HTML ضا ثب ثب ب method_ ای شس ب سؼطی و ی وبفی یه س input اظ ع hidden سؼطی یى ی ث valueآ یىی اظ مبزیط PUT, DELETE, PATCH ضا ثس یس ظال: <form action="/foo/bar" method="post"> <input type="hidden" name="_method" value="put"> <input type="hidden" name="_token" value="<?php echo csrf_token();?>"> </form> زض ظب ثبال آزضؼ http://www.example.com/foo/bar زض ض سط ثب شس put لبث زضیبفز اؾز و ی س ا ی ثطای DELETE, PATCH ث ی ن ضر ػ و ی. وبضثطز ای شس ب ضا زض ثرف و شط ط ب سكطیح ذ ا وطز. ی یه س اظ ع رفی ث ب _token زض فط ػ ز زاضز و زض یه دؿز ػسا ب زض ضز فط ب وبض ثب آ ب س ضیح ذ ا زاز. Rasekhoon.net ص ف ح 11

هسیش با پاساهتش ث طا ؿیط ی س ا ی ط سؼساز دبضا شط ضا اضؾب و ی فمظ وبفی اؾز ب دبضا شط ب ضا زاذ آو الز لطاض ز ی. ث ظب بی ظیط س ػ و یس : Route::get('user/id', function($id) return 'User '.$id; ); Route::get('user/name?', function($name = null) return $name; ); Route::get('user/name?', function($name = 'John') return $name; ); زض ظب بی ثبال ب غ ض و كب س وطزیس ی س ا ی ثطای دبضا شط ب یه مساض دیف فطو یب null زض ظط طفز سب زضن ضر اضز ىطز مساضی ثطای دبضا شط زض url ذغبیی ایؼبز ك ز. ی ثبیس ػ ی ب دبضا شط بی اذشیبضی یه ػال ز? لطاض ز ی. افض دى عباست ه ظن ب پاساهتش ا ی س ا ی ثب افع ز شس where ث ا ش بی شس get ثطای ط دبضا شط یه ػجبضر ظ سؼطی وطز سب ظال idفمظ مساض ػسز ضز لج ثبقس. زض ن ضسی و ؿ س دبضا شط ضا ثر ا ی ثطایف ػجبضر ظ سؼطی و ی آ ب ضا زاذ آضای لطاض ی ز ی. Route::get('user/id/name', function($id, $name) // ) ->where(['id' => '[0-9]+', 'name' => '[a-z]+']) ی ی س ا ی ثطای یه دبضا شط ذبل زض و ثط ب یه ػجبضر ظ ػ ی سؼطی و ی ث ای ن ضر و زض والؼ RouteServiceProvider زض زایطوش ضی app/providers زض شس boot ای ػجبضر ضا Rasekhoon.net ص ف ح 12

لطاض ز ی ظال زض ظب ظیط وبضثط زض routing طػبیی اظ دبضا شط id اؾشفبز وطز فمظ ؼبظ ث زاز مساض ػسزی ث آ اؾز زی ط ب س ثبال یبظ ث سؼطی شس where یؿز: $router->pattern('id', '[0-9]+'); هسیشد ی ب یک ک تشلش اکطي Route::get('user/id', 'UserController@showProfile'); زض دبضا شط ز فمظ وبفی اؾز ثی ب والؼ و شط ط اوك یه ػال ز @ لطاض ز ی. اهگزاسی هسیش ثب اؾشفبز اظ و as ی س ا ی ثطای ؿیط یه ب سؼطی و ی ی ثب اؾشفبز اظ uses ی س ا ی آ ضا ث اوك و شط ط ذبنی سایز و ی. Route::get('user/profile', [ 'as' => 'profile', 'uses' => 'UserController@showProfile' ]); اظ وبضثطز بی ب عاضی ؿیط ثطای ایؼبز ؾبذش url اؾز و ی س ا ی ثب اؾشفبز اظ سبثغ و ىی route ب ؿیط ضا ث آ ثس ی ظال زض ظب ثبال ثب زاز بprofile آزضؼ: http://www.example.com/user/profile ایؼبز ذ ا س قس ی ثطای ضیسایطوز ث یه ؿیط وبضثطز زاضز. $url = route('profile'); $redirect = redirect()->route('profile'); Rasekhoon.net ص ف ح 13

هسیشد ی گش ی زض الضا ی س ا ی یه زؾش اظ ؿیط ب ضا و ظال زض یه لؿ ز اظ url ذ ز كشطن ؿش س یب middleware كشطوی زاض س یب زاضای یه namespace كشطن ؿش س ضا زض یه ط لطاض ز ی. ؼ ی ی س ا ی sub-domain ب ضا اظ ای عطیك سیطیز و ی. Route::group(['prefix' => 'admin'], function() Route::get('users', function() // Matches The "/admin/users" URL ); ) زض ظب ثبال س ب ی ؿیط بیی و ثب admin قط ع ی ق س ضا زاذ ای ط لطاض ی ز ی. ک تشلش ا دس السا ل 5 یىی اظ ؾ ػ هط ان ی ا ی عطاحی MVC و شط ط ب ؿش س. زض فبی routing.php ی س ا ی زضذ اؾز ب ضا ث یه و شط ط اوك ذبنی اضؾب و ی ث ع ض ظب آزضؼhttp://www.example.com/user/5 ضا زض ظب ظیط ث و شط ط UserController اوك showprofile سایز ی و س. Route::get('user/id', 'UserController@showProfile'); Rasekhoon.net ص ف ح 14

سؼطی و شط ط : وشط ط ب زض ؿیط زایطوش ضی app/http/controllers لطاض ی یط س. <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; class UserController extends Controller /** * Show the profile for the given user. * * @param int $id * @return Response */ public function showprofile($id) return view('user.profile', ['user' => User::findOrFail($id)]); ک تشلش ا فضای ام( namespace ) ثطای طوالؼ ثبیس namespace آ ضا سؼطی و ی و ای فضبی ب زض الغ ؿیط لطاض یطی والؼ اظ د ق app ی ثبقس ثطای و شط ط ب App\Http\Controllers سؼطی ی و ی. زض ن ضسی و زاذ زایطوش ضی Controllers یه زایطوش ضی زی ط ظال ث ب Auth ایؼبز وطز ثبقی و شط طی زض آ سؼطی و ی فضبی ب ث ن ضر namespace App\Http\Controllers\Auth ی ثبقس. ىش : یك ب والؼ بی و شط ط ضا ث ن ضر PascalCase زض ا ش بی آ و Controller ضا ثیب ضیس. ث شط اؾز اوك ب ضا ث ن ضر camelcase ب عاضی و یس. ا جش ذ ز یك ػبزر زاض والؼ بی و شط ط س ضا ثب سط ی ب ایؼبز و و ق ب ی س ا یس ثب ای زؾش ض یه و شط ط ثس یؾ شسی ایؼبز و یس: کذ: php artisan make:controller UserController --plain Rasekhoon.net ص ف ح 15

استفاد اص middleware دس ک تشلش ب غ ض و زض دؿز لج ی س ضیح زاز ی س ا ی ثطای ط ؿیط ذبل یه والؼ یب افعاض اضبف و ی سب زضذ اؾز ب فی شط ق س. ظال زض ظب ظیط ثطای ؿیط یب افعاض auth ضا اضبف وطزی. Route::get('profile', [ 'middleware' => 'auth', 'uses' => 'UserController@showProfile' ]); زض ظب ظیط ب غ ض و كب س ی و یس ؾ ظب اظ اؾشفبز اظ یب افعاض زض و شط ط ب ضا آ ضز اؾز و زض شس ؾبظ س والؼ لطاض ی یط س: class UserController extends Controller /** * Instantiate a new UserController instance. */ public function construct() $this->middleware('auth'); $this->middleware('log', ['only' => ['fooaction', 'baraction']]); $this->middleware('subscribed', ['except' => ['fooaction', 'baraction']]); زض ظب ز یب افعاض ضا ثب اؾشفبز اظ و only فمظ ث اوك بی baraction fooaction حس ز وطزی فی شط فمظ ث ای اوك ب اػ ب ق ز زض ظب ؾ ثب اؾشفبز اظ و except یب افعاض ث اوك ب اػ ب ق ز ث ػع اوك بی baraction. fooaction زض الضا ی ی س ا ی ث ؿیطز ی ث یه اوك ضا ث ن ضسی ؾبز سط ا ؼب ز ی ظال ثب سؼطی ؿیط ث ای ن ضر: Route::controller('users', 'UserController'); Rasekhoon.net ص ف ح 16

ثب افع ز زضذ اؾز http ث اثشسای ب اوك ثب س ػ ث ع زضذ اؾز ث اوك ضز ظط سح ی زاز ی ق ز: class UserController extends BaseController public function getindex() // public function postprofile() // public function anylogin() // نکته : ا ط ی ذ ا یس ثطذی اظ ؿیط ب ضا ب عاضی و یس وبفیؿز دبضا شط ؾ ی ث ن ضر آضای زض ظط ث یطیس و یس آضای ب اوك مساض آ ب ؿیط ثبقس: Route::controller('users', 'UserController', [ 'anylogin' => 'user.login', ]); ک تشلش ای RESTful زض الضا ی س ا ی ثب زؾش ض ظیط زض سط ی ب و شط ط بیی ثب اوك بی ذبنی ایؼبز و ی و ط اوك یه ؿیط زضذ اؾز http ضا سح ی ی یط س. ث ع ض ظب و شط ط PhotoController ضا ایؼبز ی و ی : php artisan make:controller PhotoController کذ : ؿیط ضا ث ای ن ضر زض فبی routes.php سؼطی ی و ی : Route::resource('photo', 'PhotoController'); Rasekhoon.net ص ف ح 17

حبال ا ط url ضا ث ن ضر http://www.example.com/photo ث یؿی اوك index زضذ اؾز ضا زضیبفز یى س. زض سه یط ظیط ی س ا یس اعالػبر وب ی ضا اظ س ب اوك ب زاقش ثبقیس verb. ع زضذ اؾز ؿیطی و زض url اضز یى ی action اوك ی و ای زضذ اؾز ضا زضیبفز یى س path http route name ب ؿیط ی ثبقس. ی ی س ا ی فمظ اوك بی ذبنی ضا ث ن ضر RESTful سؼطی و ی : Route::resource('photo', 'PhotoController', ['only' => ['index', 'show']]); Route::resource('photo', 'PhotoController', ['except' => ['create', 'store', 'update', 'destroy']]); کاس با view دس السا ل 5 resources/views ب ضا زض ؿیط view زض الضا ۵ لطاض ی ز ی. ق ب ی س ا یس آ ب ضا ثب اؾشفبز اظ س ض لب ت Blade یب ث ن ضر ؼ ی ایؼبز و یس. زض ظب ظیط فبی greeting.php ضا زض ؿیط شوط قس لطاض ی ز ی زض آ زؾش ضار ظیط ضا لطاض یس ی : <!-- View stored in resources/views/greeting.php --> <html> <body> <h1>hello, <?php echo $name;?></h1> </body> </html> کذ: ثب اؾشفبز اظ سبثغ و ىی view ی س ا ی فبی ی ضا render و ی. ای سبثغ ز دبضا شط ی یطز و ا ی ب فبی ی ضز ظط ثس لطاض زاز فط ز آ ز ی دبضا شط آضای ای اظ زاز بیی ؿز و ث فبی ی ی فطؾشی.و یس آضای زض فبی ی ث ن ضر ب شغیط لبث اؾشفبز اؾز. زض ظب ظیط وبضثط ثب اضز وطز آزضؼ http://www.example.com ث ا Hello, James بیف زاز ی ق ز. Rasekhoon.net ص ف ح 18

Route::get('/', function() return view('greeting', ['name' => 'James']); ); زض ن ضسی و فبی view زاذ یه زایطوش ضی ثبقس وبفی اؾز ب زایطوش ضی فبی ضا ثب یه مغ اظ ػسا و یس: return view('admin.profile', $data); زض ظب ف ق فبی ی زض ؿیط resources/views/admin/profile.php لطاض زاضز. ی ث ض بی ظیط ی س ا ی زاز ضا ث ی اضؾب و ی : // Using conventional approach $view = view('greeting')->with('name', 'Victoria'); // Using Magic Methods $view = view('greeting')->withname('victoria'); شس with ز دبضا شط ی یطز و ا ی ب شغیط ز ی مساض آ ؿز. ی ی س ا یس ث ض ز و زض ا ش بی شس with ب شغیط ضا اضبف مساض ضا ث ػ ا دبضا شط ث آ ی ز ی. بشسسی ج د فایل view if (view()->exists('emails.customer')) // س ذس کشدى view اص عشیق هسیش فایل Route::get('/', function() return view()- >file('/var/www/html/laravel/public/greeting.php', ['name' => 'James']); ); Rasekhoon.net ص ف ح 19

ب غ ض و ی ث یس وبضثطز آ ثطای الؼی اؾز و ق ب فبی view و ذبضع اظ ؿیط public سؼطی وطز ایس ضا ثش ا یس ض سض و یس. زض ظب ثبال فبی ی ضا زض د ق resourrces/views ایؼبز وطز. Rasekhoon.net ص ف ح 20

دسخ است ای HTTP دس السا ل 5 زض فطی ضن الضا زضذ اؾز بی http و ثب شس بی..., POST GET, اضؾب ی و ی ضا ی س ا ی مبزیط آ ب ضا ثب اؾشفبز اظ والؼ Request زضیبفز و ی : $name = Request::input('name'); ىش : ثطای اؾشفبز اظ ط والؾی زض والؼ بی و شط ط اثشسا ثبیس آ والؼ ضا ثب اؾشفبز اظ زؾش ض use ای ذ ضر و ی. زض ظب ثبال ثبیؿشی ث ای ن ضر لج اظ سؼطی والؼ و شط ط ضز ظط والؼ Request ضا ای ذ ضر و ی. use Request; ی ی س ا ی ث ض زی طی مبزیط ضا ث زؾز ثیب ضی. ث ای ن ضر و اثشسا والؼ Request ث و شط ط ضز ظط ای ذ ضر ی و ی ؾذؽ زؾش ض Illuminate\Http\Requestضا request $ضا ث ػ ا دبضا شط ث اوك ضز ظط ی ز ی. زض ع ثط ب زاذ اوك ی س ا ی اظ شغیط $ requestاؾشفبز و ی. <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Routing\Controller; class UserController extends Controller /** * Store a new user. * * @param Request $request * @return Response */ public function store(request $request) $name = $request->input('name'); // Rasekhoon.net ص ف ح 21

ی س ا ی ثطای یه ض زی مساضی دیف فطو سؼیی و ی سب زض ن ضسی و مساضی ثطای آ ؾز كس ث ز ای مساض ػبی عی آ ق ز: $name = Request::input('name', 'Sally'); ثب اؾشفبز اظ شس has ی س ا ی ثطضؾی و ی و آیب ض زی ثب ای مساض ػ ز زاضز یب ذیط: if (Request::has('name')) // ثب اؾشفبز اظ شس all ی س ا ی س ب ی ض زی ب ضا زضیبفز و ی. $input = Request::all(); ی ی س ا ی فمظ ثطذی ض زی ب یب ض زی ب ث ػع ثطذی ضا زضیبفز و ی. $input = Request::only('username', 'password'); $input = Request::except('credit_card'); ب ی و مساض ض زی یه آضای ثبقس ی س ا ی ثب اؾشفبز اظ مظ ث مساض آیش ضز ظط زؾز دیسا وطز: $input = Request::input('products.0.name'); ی ی س ا ی ث مبزیط flash و س ؾظ ؾك ایؼبز ی ق س ث ن ضسی ؿش س و فمظ ثطای زضذ اؾز ثؼسی ؼشجط ؿش س اظ ثی ی ض س ث ن ضر بی ظیط زؾشطؾی زاقش ثبقی : Request::flash(); Request::flashOnly('username', 'email'); Request::flashExcept('password'); زض ظب ز ؾ ظ لج و زیسی فمظ یب ث ػع ثطذی اضز زؾشطؾی زاضی. Rasekhoon.net ص ف ح 22

ی س ا ی مبزیط ض زی ب ضا ز ثبض ثب اؾشفبز flash ث نفح لج ی یب نفح زی طی اضؾب و ی : return redirect('form')->withinput(); return redirect('form')->withinput(request::except('password')); وبضثطز آ زض فط ب ی ثبقس و ا ط ثؼس اظ اػشجبضؾ ؼی ض زی ب زاضای ذغبیی ثبقس ثر ا ی ز ثبض ث نفح فط ثبظ طزی ض زی بی فط و وبضثط قش اظ ثی ط س. زض ظب ز ث password اػبظ حفظ قس سازی. ثطای ؿبح مبزیط لج ی ثبیس زاذ سىؿز ثبوؽ بی فط مساض ضا ث ای ن ضر ؿبح و ی : <input type="text" name="email" value="<?php echo old('name')?>"> ک کی ا ی س ا ی ث مساض یه و وی ث ای ن ضر زؾشطؾی زاقش ثبقی : $value = Request::cookie('name'); فایل ا فبی ی و آد ز قس ضا ی س ا ی ث ای ن ضر اعالػبسف زضیبفز و ی. زض ظب ظیط ب فی س فبی زض فط photo ث ز اؾز: $file = Request::file('photo'); زض ظب ظیط ثطضؾی ی و س و آیب ای فبی ثب ای ب ػ ز زاضز: if (Request::hasFile('photo')) // Rasekhoon.net ص ف ح 23

مساضی و شس file زض والؼ Request ث ب ی ز س یه آثؼىز اظ والؼ Symfony\Component\HttpFoundation\File\UploadedFile و ی س ا یس ثب شس بی آ ثطای وبض ثب فبی وبض و یس. زض ظب ثبال ثطضؾی ی و س و آیب فبی آد ز قس نحیح ثس ذغب ی ثبقس: if (Request::file('photo')->isValid()) // ثب اؾشفبز اظ شس move ی س ا ی فبی ضا ث ؿیط ضز ظط و ث ػ ا دبضا شط ا ث آ ی ز ی ی ب فبی و اذشیبضی اؾز شذیط و ی. Request::file('photo')->move($destinationPath); Request::file('photo')->move($destinationPath, $filename); پاسخ ای HTTP دس السا ل 5 پاسخ ساد ثؼس اظ زضیبفز زضذ اؾز زض الضا ا ؼب ػ یبر ضز ظط ثبیس دبؾری ایؼبز و ی. ؾبز سطی ع دبؾد return ضقش ؿز و لجال ثب آ آق ب قسی : Route::get('/', function() return 'Hello World'; ); ایجاد پاسخ دلخ ا ثب اؾشفبز اظ والؼ Response یب سبثغ و ىی response ی س ا ی یه دبؾد ز ر ا ایؼبز و ی ظال ظب ظیط ضا زض ظط ث یطیس: return response($content, $status) ->header('content-type', $value); Rasekhoon.net ص ف ح 24

حش یبر ضا ث ػ ا دبضا شط ا [url=http://en.wikipedia.org/wiki/list_of_http_status_codes][/url] status code ضا ث ػ ا دبضا شط ز ث آ ثس ی ی ثب اؾشفبز اظ شس header ع سض ضا كرم و ی ظال. application/pdf ی غ ض و زض ظب ظیط ی ثی یس ی س ا یس یه فبی ی ی یه فبی و وی ضا ث ػ ا دبؾد اضؾب و یس اؾشفبز اظ شس ب ث ن ضر ظ ؼیط ای ا ىب دصیط اؾز. return response()->view('hello')->header('content-type', $type) ->withcookie(cookie('name', 'value')); Redirect ثب اؾشفبز اظ سبثغ و ىی redirect افع ز ؿیط ث آ ی س ا ی ث ؿیط ضز ظط سایز ق ی. return redirect('user/login'); return redirect('user/login')->with('message', 'Login Failed'); ی ی س ا ی ث طا ضیسایطوز وطز یه زاز flash اضؾب و ی. ثب اؾشفبز اظ شس back ی س ا ی ث ؿیط لج ی و ث زی ز ثبض سایز ق ی. return redirect()->back(); return redirect()->back()->withinput(); زض ظب ز ی ی س ا ی زضذ اؾز بیی و ث ای ؿیط آ س ضا ز ثبض ث ؿیط لج ی اضؾب و ی و زض دؿز لج ی ح وبض ثب آ ب ضا كب س وطزی. ی س ا ی ثب اؾشفبز اظ ب ؿیط و زض فبی routes.php سؼطی routeا ؼب ز ی. یى ی ضیسایطوز ضا ثب اؾشفبز اظ شس return redirect()->route('login'); // For a route with the following URI: profile/id return redirect()->route('profile', [1]); Rasekhoon.net ص ف ح 25

ی ی س ا ی ثب اؾشفبز اظ یه آضای ث ػ ا دبضا شط ز شس route زاز ث آ اضؾب و ی. ی س ا ی ثب اؾشفبز اظ شس action ث یه اوك زض والؼ و شط ط زی طی سایز ق ی و ثبیؿشی ب والؼ ثب فضبی ب آ قش ق ز ی زض ن ضر ػ ز دبضا شط ث ن ضر آضای ث ػ ا دبضا شط ز ث آ اضبف ی و ی. return redirect()->action('app\http\controllers\homecontroller@index '); return redirect()- >action('app\http\controllers\usercontroller@profi le', ['user' => 1]); ایجاد پاسخ ب ص ستJSON ثب اؾشفبز اظ شس json و یه آضای ضا ث ػ ا دبضا شط ض زی زضیبفز یى یس ذط ػی آ ث ن ضر return response()->json(['name' => 'Abigail', 'state' => 'CA']); JSON ی ثبقس. ایجاد پاسخ ب ص ست دا ل د فایل ثب اؾشفبز اظ شس download و ؿیط فبی ضا ث ػ ا دبضا شط ی یطز ز دبضا شط اذشیبضی زی ط و ب فبی سض بی فبی ؿز ضا زضیبفز یى س. return response()->download($pathtofile); return response()->download($pathtofile, $name, $headers); return response()->download($pathtofile)->deletefileaftersend(true); Rasekhoon.net ص ف ح 26

blade دس السا ل 5 کاس با ه ت س قالب Blade ایجاد Layout زض فطی ضن الضا ثطای ایؼبز view ب یش یس اظ س ض لب ت Blade اؾشفبز و یس و وبضس ض زض ایؼبز layout ب وس یؿی ذی ی آؾ یى. ق ب ی س یس ثرف بیی اظ ثؿبیز اظ ػ سض ف سط ب... و زض س ب نفحبر ثؿبیز یىی ؿش ضا زاذ یه فبی layout ایؼبز وطز زض فبی بی زی ط لبث اضص ثطز ؿز. ای فبی ب ثب فط ز blade.php. ایؼبز ی ق س. تعشیف یک Layout ساد زض ؿیط resources/views یه د ق ث ب layouts ایؼبز وطز فبی master.blade.php ضا زاذ آ ایؼبز وطز وس بی ظیط ضا زاذ آ ی یؿی : <!-- Stored in resources/views/layouts/master.blade.php --> <html> <head> <title>app Name - @yield('title')</title> </head> <body> @section('sidebar') This is the master sidebar. @show <div class="container"> @yield('content') </div> </body> </html> اوظط زؾش ضار blade ثب ػال ز @ قط ع ی ق س. ثب اؾشفبز اظ زؾش ض yield ی س ا ی یه ثرف ضا ایؼبز و ی و ثؼسا زض فبی بیی و اظ آ اضص ثطز ی ق س ثش ا یس حش ایی و زض ط فبی شفب ر اؾز ضا زض ا لطاض ز ی. ح اؾشفبز اظ layout ثبال ضا زض فبی ی زی ط كب س و یس: Rasekhoon.net ص ف ح 27

@extends('layouts.master') @section('title', 'Page Title') @section('sidebar') @parent <p>this is appended to the master sidebar.</p> @stop @section('content') <p>this is my body content.</p> @stop ب غ ض و كب س وطزیس ثب اؾشفبز اظ زؾش ض extends ی س ا یس فبی layout ضا ث نفح اضبف و یس. ح آزضؼ ز ی ث ای ن ضر اؾز و ثی زایطوش ضی ب فبی ی مغ لطاض ی ز ی. ثب اؾشفبز اظ زؾش ض section و ب yield ضز ظط ضا ث آ ی ز ی ی س ا ی حش ای ػسیس ضا زاذ آ لطاض ز ی. زض دبیب ثبیس stop ضا ث یؿی yield. ب زض فبی layout یؾ حش ایی ساض س ا ب ا ط ثر ا ی ثركی ضا سؼطی و ی و زض فبی layout حش ازقش ثبق س ثبیس اظ section اؾشفبز ثب ای سفب ر و زض layoutثبیس زض ا ش ب show لطاض ز ی. ثرف ب زض فبی ث اضص ثطز قس override ی ق س ثطای ای ى ثش ا ی حش ای فبی ا س ض زاقش ثبقی وبفی زض اثشسا یب ا ش بی حش ای ػسیس زؾش ض parent ضا اضبف و ی. زض ظب ثبال ثرف sidebar ث ای ن ضر اؾز. ثطای ثرف yield ی س ا ی یه حش ای دیف فطو سؼیی و ی ظال : @yield('section', 'Default Content') چاپ داد یا هتغیش ا دسblade ثب اؾشفبز اظ ثالن بی ز آو الز ی س ا ی یه شغیط یب ػجبضر لبث ؿبح ضا زض نفح ؿبح و ی. Hello, $name. The current UNIX timestamp is time(). Rasekhoon.net ص ف ح 28

ی ا ط شغیطی ثب ب ضز ظط ؾز كس ث ز یه مساض دیف فطو ثطای ؿبح زض ظط ث یطی سب ثبػض ایؼبز ذغب زض نفح ك ز. $name or 'Default' ز آو الز زض blade س ب ی زؾش ضار html ضا escape یى س ب س زؾش ض htmlentities زض php ػ یى س. ا ط ر ا ی زاز ب escape ق س ث ای ن ضر ا ؼب ز یس: Hello,!! $name!!. زؾش ضار قطعی ح م ب ث ن ضر بی ظیط لبث قش ؿش س: @if (count($records) === 1) I have one record! @elseif (count($records) > 1) I have multiple records! @else I don't have any records! @endif @foreach ($users as $user) <p>this is user $user->id </p> @endforeach ای کل د کشدى فایل view دس view دیگش ظال زض یه فبی ی فط ال ی ضا عطاحی وطش ای ی ذ ا ی آ ضا زض ؿ س نفح اؾشفبز و ی وبفیؿز آ ضا ب س ظب ظیط زض فبی بی ضز ظط ای ى ز و ی : @include('view.name') @include('view.name', ['some' => 'data']) زض ظب ثبال view ب د ق name اضؾب و ی. ب فبی ی ضز ظط اؾز. ی ی س ا ی زیشب ث آ فبی Rasekhoon.net ص ف ح 29

ت ضیحات دسBlade ثطای قش وب ز یب س ضیحبر ی س ا یس ث ن ضر ظیط ػ و یس: -- This comment will not be in the rendered HTML -- ت ابع کوکی دس السا ل 5 زض الضا ۵ س اثغ و ىی یب helper ثؿبیط ظیبزی زض الضا ػ ز زاض س و زض حی س ؾؼ ثط ب ث وبضس یب س ی دؿز بی لج ی اظ ؿ سسب اظ ب اؾشفبز وطزی ظ سبثغ. view ثطای وبض ثب آضای ب ؿیط ب ایؼبز url وبض ثب ضقش ب س اثغ ثؿیبض ذ ثی زاضز.س ی ای دؿز یر اؾش ؿ سسب اظ دطوبضثطز بق ؼطفی و. افع ز ث آضای ثب سبثغ array_add $array = ['foo' => 'bar']; $array = array_add($array, 'key', 'value'); سمؿی آضای ث ز آضای اظ و یس ب مبزیط ثب سبثغarray_devide $array = ['foo' => 'bar']; list($keys, $values) = array_divide($array); طفش ؿیط فیعیىی زایطوش ضی public app ثب س اثغ public_path app_path $path = app_path(); $path = public_path(); اػطای زؾش ض htmlentities ض ی ضقش ثب دكشیجب ی اظ UTF-8 ثب سبثغe $entities = e('<html>foo</html>'); Rasekhoon.net ص ف ح 30

ایؼبز یه ضقش سهبزفی ث ع ز ر ا ثب سبثغ str_random و ظال بؾت ثطای ایؼبز و ػج ض اؾز. $string = str_random(40); ایؼبز ؿیط وب ثب سبثغ - url دبضا شط ا ف ؿیط ؿجی ؿز دبضا شط ز دبضا شط بی ؿیط زض ن ضر ػ ز اؾز دبضا شط ؾ ا ط true ثبقس ؿیط ثب دط سى https ایؼبز ی ق ز echo url('foo/bar', $parameters = [], $secure = null); ایؼبز یه س و زض فط ب ثطای ػ یطی اظ ح الر csrf ثب سبثغcsrf_token $token = csrf_token(); سبثغ dd یه شغیط یب آثؼىز یب آضای ضا ی یطز ث ن ضسی قجی var_dump بیف ی ز س ثطای debugوطز ذی ی وبضثطزی ؿز dd($value); Rasekhoon.net ص ف ح 31

Middleware ا دس السا ل 5 زض فطی ضن الضا middleware ب یه ىب یؿ ؾبز ای ضا ثطای فی شط وطز زضذ اؾز بی http ض زی ث ثط ب سب سساضن ی ثی س. ث ع ض ظب الضا یه) middleware سطػ فبضؾیف یك یب افعاض( ثطای احطاظ یز وبضثطا زاضز زض ن ضسی و وبضثطی Login ىطز ثبقس احطاظ یز كس ثبقس یب افعاض آ ضا ث نفح ال ی سایز یى س ط یب افعاض ث زضذ اؾز اػبظ ازا وبض ضا یس س. middleware ب زض زایطوش ضی app/http/middleware لطاض ی یط س. تعشیف یک middleware ثب سبیخ زؾش ض make:middleware زض سط ی ب ی س ا ی یه یب افعاض ػسیس ایؼبز و ی. زض ظب ظیط یب افعاض OldMiddleware ضا ایؼبز وطزی. php artisan make:middleware OldMiddleware فبی ایؼبز قس ضا ثبظ یى ی زض شس handle قطط ظیط ضا لطاض یس ی ث ای ن ضر و زضذ اؾز ض زی ث ب age ا ط و ؿىشط اظ 200 ث ز ث نفح home ضیسایطوز ق ز ط ث زضذ اؾز اػبظ ازا وبض ثس س. <?php namespace App\Http\Middleware; class OldMiddleware /** * Run the request filter. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) if ($request->input('age') < 200) return redirect('home'); return $next($request); Rasekhoon.net ص ف ح 32

او ثطای ای ى ثر ا ی اظ ای یب افعاض اؾشفبز و ی اثشسا ثبیس آ ضا زض فبی app/http/kernel.php طجز و ی. ا ط ی ذ ا یس ای یب افعاض ثطای ط زضذ اؾز http middleware$ اضبف و یس و ثؼس اظ ای طزضذ اؾشی ثب ای ب ضا فی شط ذ ا س وطز. ثط ب سب اػطا ق ز آ ضا ث آضای ا ط ی ذ ا یس یب افعاض فمظ ث یه ؿیط ذبل اػ ب ق ز اثشسا ثبیس آ ضا ث آضای routemiddleware$ اضبف و یس ث ای ن ضر و و یس آ زض آضای ب ذالن آ ثطای اؾشفبز زض ثط ب ث وبض ی ض ز: protected $routemiddleware = [ 'auth' => 'App\Http\Middleware\Authenticate', 'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicA uth', 'guest' => 'App\Http\Middleware\RedirectIfAuthenticated', 'old' => 'App\Http\Middleware\OldMiddleware', ]; حبال ی س یس یب افعاض ضا ث ط ؿیطی زض فبی routing.php ب س ظب بی ظیط اضبف و یس و ز سب یب افعاض auth old ضا ث ؿیط بی ضز ظط ب افع زی : Route::post('url/create', ['middleware' => 'old', 'uses'=>'urlcontroller@create']); Route::get('admin/profile', ['middleware' => 'auth', function() // ]); Before / After Middleware ی ی س ا ی یب افعاض بی ذبنی ضا ایؼبز و ی و لج یب ثؼس اظ سیطیز زضذ اؾز س ؾظ ثط ب ػ ی ضا اػطا و س. Rasekhoon.net ص ف ح 33

Session ا دس السا ل 5 زض الضا ۵ ی س ا ی اظ عطیك والؼ Session ثب اؾشفبز اظ سبثغ و ىی session ث مبزیط آ ب زؾشطؾی زاقش ثبقی. رخیش هقذاس دس یک سطي زض ظب ظیط ثب طز ض مساضی ضا زض session شذیط وطز ای key. ب value session مساض آ اؾز. ثطای سؼطی ؿ س session و یس مساض ضا زاذ یه آضای لطاض ز یس. Session::put('key', 'value'); session(['key' => 'value']); ثبیس س ػ زاقش ثبقیس و ثطای ؾز وطز یه session زض سبثغ و ىی session ثبیس آ ضا زض آضای لطاض ز یس. افض دى هقذاس ب یک session آسای ای Session::push('user.teams', 'developers'); ثبظیبثی مساض session ثب شس get ا ىب ذصیط اؾز. $value = Session::get('key'); $value = session('key'); زض ن ضسی و session مساضی ساقز ی س ا ی ثطای آ یه مساض دیف فطو سؼطی و ی $value = Session::get('key', 'default'); $value = Session::get('key', function() return 'default'; ); طفش مساض یه session ثالفبن حصف آ ثب شس pull ا ىب ذصیط اؾز: $value = Session::pull('key', 'default'); Rasekhoon.net ص ف ح 34

ثب شس all ی س ا ی ث س ب مبزیط ؾك ب ضا زض یه آضای ثبظیبثی و ی. $data = Session::all(); ثطای حصف یه session ذبل اظ شس forget و ب ؾك ضا ث آ ی ز ی اؾشفبز ی و ی. ثطای حصف س ب ی session ب اظ flush اؾشفبز یى ی. Session::forget('key'); Session::flush(); ثطای ا یز ثیكشط ؾك ب ی س ا یس اظ شس regenerate ثطای س یس ز ثبض session id اؾشفبز و یس: Session::regenerate(); داد ای فلص ؾك ب ثؼس اظ س یس سب لشی و ط ض ط ثؿش ك ز اظ ثی ی ض س. زض الضا session بیی ث ب ف ف ػ ز زاض س و فمظ ثطای یه زضذ اؾز ؼشجط ؿش س ثالفبن زض زضذ اؾز ثؼسی اظ ثی یط س و بؾت ثطای ایؼبز دیغب بی ذغب ی ثبق س. ب س ظب ظیط آ ب ضا س یس ی و ی ث ب س ؾك بی زی ط ثبظیبثی یى ی. Session::flash('key', 'value'); رخیش سطي ا دس دیتابیس session ب ث ع ض دیف فطو زض فبی شذیط ی ق س. ق ب ی س ا یس آ ب زض ؿ س ػبی رش اظ ػ زیشبثیؽ شذیط و یس و طوسا زض وبضثطز بی ذبنی اؾشفبز ی ق س. زض ن ضسی و یر ا یس ؾك ب ضا زض زیشبثیؽ شذیط و یس وبفی اؾز ای ؾ زؾش ض ضا ث سطسیت زض سط ب سبیخ اػطا و یس: Rasekhoon.net ص ف ح 35

کذ: ؾذؽ زض فبی env. مساض SESSION_DRIVER ضا ث database سغییط ز یس. php artisan session:table composer dump-autoload php artisan migrate اعتباس س جی دس السا ل 5 س ی ای دؿز یه ظب وبضثطزی اظ اػشجبض ؾ ؼی فط ب زض فطی ضن الضا ض ذ ا ی زاقز. ثطای ای ظ ض اثشسا یه فط ض زض فبی view ظال ث ب form.blade.php زض د ق resources/views ایؼبز ی و وس بی فط ضا ث ای ن ضر ی یؿ : <ul> @foreach($errors->all('<li>:message</li>') as $error)!! $error!! @endforeach </ul> <form action=" url('test') " method="post"> <input type="hidden" name="_token" value=" csrf_token() "> <label for="name">name</label> <input type="text" name="name" id="name" value=" old('name') "> <label for="email">email</label> <input type="text" name="email" id="email" value=" old('email') "> <label for="age">age</label> <input type="text" name="age" id="age" value=" old('age') "> <input type="submit" value="submit"> </form> ی غ ض و كب س یى یس اوك فط ضا ث ؿیط test سؼیی وطز. ثطای فط بیشب ثبیس حش ب یه س و سؼیی و یس و یه فی س رفی ثب ب token_ اؾز مساض آ س ؾظ سبثغ csrf_token ایؼبز ی ق ز ثطای ػ یطی اظ ح الر csrf ث وبض ی ض ز. ثطای ط سىؿز ثبوؽ مساض آ ضا ثب سبثغ و ىی old مساضز ی وطز سب زض ن ضر ضیسایطوز ثه قس زضذ اؾز مبزیط لج ی فط حفظ ق س. ذت حبال ثبیس س ی فبی routes.php ز سب ؿیط سؼطی و ی. ؿیط get و فبی فط ضا ض سض یى س زض ط ض ط بیف ی ز س post و مبزیط ثؼس اظ ؾبث یز ث آ اضؾب ی ق س. Rasekhoon.net ص ف ح 36

Route::get('test', function() return view('form'); ); Route::post('test', function() ); ثطای ع ال ی كس ظب زض ی فبی routes اػشجبضؾ ؼی ض ا ؼب یس ا ب ق ب ث شط ثطای ضػبیز ان mvc ای اػ ب ضا زاذ و شط ط ب ا ؼب ثسی. حبال اػشجبضؾ ؼی ض ث ای ن ضر ا ؼب یس : Route::post('test', function() $validator = Validator::make( Request::all(), [ 'name' => 'required', 'email' => 'required email unique:users', 'age' => 'numeric', ] ); ); if($validator->fails()) return redirect()->back()->witherrors($validator->errors())->withinput(); ب غ ض و ی ثی یس اظ والؼ Validator شس make اؾشفبز وطز. ای شس ز سب دبضا شط آضای ای ی یطز و ا ی آضای ای اظ مبزیط ؿز و اظ فط اضؾب وطز ای ز ی آضای ای ؿز و ل ا ی اػشجبضؾ ؼی ضا ثطای ط فی س سؼطی ی و ی. ؿیعی و ای ؼب ػسیس ح قش ل ا ی اػشجبض ؾ ؼی ؿز و یه آضای ؿز و ثبیس و یس آ ب ا فی س فط مساض ا ل ا ی ا فی س ثبقس ط لب ضا ثب وبضاوشط اظ ػسا یى ی required.یؼ ی ا عا ی ث ز فط email یؼ ی یه آزضؼ ای ی ؼشجط ثبقس یب numericیؼ ی مساض ثبیس ػسزی ثبقس.... زض ای ؼب اظ یه لب ث ب unique ثطای فی س email لطاض زاز و زض ػس users ثطضؾی ی و س و مساض ای ی اضزقس زض ػس لجال طجز كس ثبقس. ا جش ثبیس ب ؾش ای ی زض ػس ثب ب فی س یىی ثبقس ط ثبیس ب ؾش ضا ػ ی لب اضبف و ی. زض بیز ثب شس fails ثطضؾی یى ی ا ط اػشجبضؾ ؼی زاضای ذغب ث ز ث نفح لج ضیسایطوز ق ز. دیغب بی ذغب مبزیط لج ی فط اضؾب ق س. حبال یه ض ذی ی ؾبز سط اظ لج ی ض ث ش ی و ث ػبی اؾشفبز اظ والؼ Validator زاذ و شط ط اظ شس validate ذ ز و شط ط اؾشفبز و یس: Rasekhoon.net ص ف ح 37

public function store(request $request) $this->validate($request, [ 'title' => 'required unique max:255', 'body' => 'required', ]); // س ای ض اػشجبضؾ ؼی ا ؼب ی ق ز ا ط ذغبی اػشجبضؾ ؼی ساقز و ث ازا وبض ی دطزاظز ط ذ ز اس بسیه ث نفح لج ی ضیسایطوز یى س دیغب بی ذغب ضا ث آ ؼب اضؾب ی و س. ثط ب یؿب حطف ای ثس جب ای ؿش س و یك حسال وس ض ث یؿ دؽ ا ط س ی والؼ و شط ط ض ظط ؿ سی ثبض اظ اػشجبضؾ ؼی زض اوك بی رش ی ذ ا یس اؾشفبز و یس ثبظ ض ث شطی ؿز و ل ا ی ض زض یه والؼ request ایؼبز و یس. اثشسا ثب زؾش ض ظیط زض سط ی ب یه والؼ request ثب ب ز ر ا ایؼبز و یس: php artisan make:request StoreBlogPostRequest کذ: س ػ زاقش ثبقیس ای والؼ حش ب ثبیس اظ والؼ Request اضص ثطز ق ز. حبال س ی شس rules ا والؼ ل ا ی ض سؼطی و ی : public function rules() return [ 'title' => 'required unique max:255', 'body' => 'required', ]; وبفی س ط اوك و شط طی و ی ذ ا ی اػشجبضؾ ؼی ا ؼب ق ز اظ ای والؼ اؾشفبز و ی. public function store(storeblogpostrequest $request) // The incoming request is valid... زضذ اؾز ب اثشسا اػشجبضؾ ؼی ی ق س زض ن ضسی و ثس ذغب ثبق س اضز اوك ی ق س ط ث ع ض اس بسیه ث نفح لج ی ضیسایطوز دیغب بی ذغب لبث زؾشطؾی ؿش س. Rasekhoon.net ص ف ح 38

وایص پیغام ای خغا دسview echo $errors->first('email'); foreach ($errors->all() as $error) // زض ن ضسی و فمظ ذغبی فی س ذبنی ضا ثر ا ی بیف ز ی ب س ظب ا ا ط دیغب ب ضا بیف ز ی ث ب س ظب ز ػ یى ی. ی ی س ا ی دیغب بی ذغب ضا زض لب ت یه س HTML بیف ز ی و زض ظب ث ای ن ضر ػ وطز : <ul> @foreach($errors->all('<li class="error">:message</li>') as $error)!! $error!! @endforeach </ul> ایجاد یک قا ى اعتباس س جی دلخ ا ا ط لب ضز ظط ق ب زض ل ا ی ػ ز الضا ػ ز ساقز ی س ا یس ثب اؾشفبز اظ شس extend ای لب ضا ایؼبز و یس: Validator::extend('alpha_spaces', function($attribute, $value) return preg_match('/^[\pl\s]+$/u', $value); ); ظال لب ی و یبظ زاقش ؼبظ ث ز حط ف ا فجب فبن زض یه مساض ث ز و زض ثبال سؼطی وطز. ایجاد پیغام خغای دلخ ا بشای ق ا یي اعتباسس جی دیغب ب ذغب ث ع ض دیف فطو زض ؿیط resources/lang/en فبی validation.php سؼطی قس ا س ث ظثب ا یؿی ؿش س. ب ی س ا ی یه آضای سؼطی و ی و و یس آ ب لب مساض آ دیغب ذغبی ضز ظط ق ب ی ثبقس ای آضای ضا ث ػ ا دبضا شط ؾ ث شس make ثس ی. Rasekhoon.net ص ف ح 39

$messages = [ 'same' => 'The :attribute and :other must match.', 'size' => 'The :attribute must be exactly :size.', 'between' => 'The :attribute must be between :min - :max.', 'in' => 'The :attribute must be one of the following types: :values', ]; $validator = Validator::make($input, $rules, $messages); ا جش ضا ث شطی دیك بز یى ث ػبی ای ى زض ط اوك ثر ا یس ای دیغب بضا ؾز و یس ث شط اؾز زاذ ؿیط resources/langیه د ق ث ب fa ایؼبز و ی حش یبر د ق en ضا زاذ آ وذی و ی ؾذؽ زاذ فبی validation.php دیغب بی ذغبی ط لب ضا ث فبضؾی ز ر ا ذ زسب ؾز و یس. ی زاذ آضای attributes زاذ ب فبی ب فی س بی فط و ث ظ ض دیف فطو اظ ذبنیز name طسىؿز ثبوؽ طفش ی ق ز ضا ث ز ر ا ذ زسب سغییط ز یس. ث ظب ظیط س ػ و یس:,".پر کردن آن السامی است :attribute فیلد" <= "required" 'attributes' => [, 'وام' => 'name','آدرش ایمیل ' => 'email','سه' => 'age' ], ثطای لب required یه دیغب ز ر ا ب ز ر ا ی ثطای فی س ب زض ظط طفش. ثطای اؾشفبز اظ ای دیغب بی ز ر ا ؿ ای د ق ضا fa ب عاضی وطز ثبیس زاذ فبی app.php زض د ق config آیش locale ضا ث fa سغییط ز یس. Rasekhoon.net ص ف ح 40

کاس با دیتابیس دس السا ل 5 هباحث پای کاس با دیتابیس یىی اظ عیز بی فطی ضن الضا وبض ثب زیشبثیؽ آ اؾز و ثؿیبض ؾبز اؾز شس بی ظیبزی ثطای ػ یبر بی رش زاضز. ثطای اػ ب س ظی بر زیشبثیؽ ذ ز ثبیس زاذ فبی env. ی زض د ق config فبی database.php س ظی بر ضز ظط ذ ز ضا اػ ب و یس. ث ع ض دیف فطو الضا اظ mysqlاؾشفبز ی و س ا ب اظ زیشبثیؽ بی SQL Server MySQL, Postgres, SQLite دكشیجب ی ی و س ی س ا ی اظ ط یه اظ ا ب اؾشفبز و ی. اجشای ک ئشی با کالس DB زض الضا ث ؾبز ی ی س ا ی ثب اؾشفبز اظ والؼ DB قش و ئطی ث ن ضر prepared statementsػ ضز ظط ب ضا ا ؼب ز ی. ثب اؾشفبز اظ شس select ی س ا ی ضو ضز بی زاذ یه ػس ضا ثبظیبثی و ی ذط ػی آ یه آضای اؾز. دبضا شط ز شس select یه آضای اظ مبزیط اؾز و و زض ن ضسی و و ئطی یبظ ث bind وطز مساضی زاقش ثبقس اظ آ اؾشفبز یى ی. ح اؾشفبز اظ آ ضا ث ز قى رش ی ثی یس: $results = DB::select('select * from users where id =?', [1]); $results = DB::select('select * from users where id = :id', ['id' => 1]); insert, update, delete ثطای زضع زض ػس اظ شس insert ثطای ث ض ظ ضؾب ی اظ update حصف اظ ػس delete ضا اؾشفبز یى ی : DB::insert('insert into users (id, name) values (?,?)', [1, 'Dayle']); DB::update('update users set votes = 100 where name =?', ['John']); DB::delete('delete from users where id =:id', ['id' => 1]); ىش : شس بی delete update سؼساز ضو ضز بیی و ثب ای و ئطی سغییط یبفش س یب حصف قس س ضا ثط ی طزا س. ا ط و ئطی غیط اظ ۴ ػ ان ی زیشبثیؽ ث ز ی س ا ی اظ شس ststement اؾشفبز و ی : Rasekhoon.net ص ف ح 41

DB::statement('drop table users'); ثطای سطاو ف ی س ا یس اظ شس transaction اؾشفبز و یس ػ یبر ض ظطسب ضا زاذ سبثغ و ث آ ی ز ی ضا ا ؼب ز ی. زض ن ضسی و طیه اظ و ئطی ب ثب ذغبیی اػ ق س اػطا ك س ث ظ ض اس بسیه س ب و ئطی بی اػطا قس ث ػمت ثط ی طز س و بؾت ثطای ػ یبر بی ب ی ی ثبقس. DB::transaction(function() DB::table('users')->update(['votes' => 1]); ); DB::table('posts')->delete(); زض ن ضسی و زض ثط ب سب اظ ؿ س اسهب ث زیشبثیؽ اؾشفبز ی و یس ثب اؾشفبز اظ شس connection زاز ب اسهب ث آ ث ػ ا دبضا شط اظ آ اؾشفبز و ی : $users = DB::connection('foo')->select(...); کاس با دیتابیس با Query Builder ض ث شط آؾب شط ثطای وبض ثب زیشبثیؽ زض الضا ث ػبی قش وب و ئطی اؾشفبز اظ Query Builder اؾز. ق ب ی س ا یس اوظط ػ یبر بی زیشبثیؽ ضا زض ثط ب سب ا ؼب ثس یس ای و ئطی ب زض زیشبثیؽ بیی و الضا ؾبد ضر ی و س وبض و س. زض ض و ئطی ثی سض الضا اظ bind وطز دبضا شط ب اؾشفبز ی و س و ثط ب سب ضا زض ثطاثط ح الر SQL Injection حبفظز یى س. SELECT ثطای ا شربة س ب ی ضو ضز بی یه ػس اثشسا ب ػس ضز ظط ضا ث شس table ؾذؽ ثب شس get ضو ضز ب ضا اوكی یى ی. $users = DB::table('users')->get(); foreach ($users as $user) var_dump($user->name); ثطای اؾشفبز اظ قطط زض و ئطی اظ شس where اؾشفبز ی و ی ای شس ؾ دبضا شط ی یطز و ا ی ب Rasekhoon.net ص ف ح 42

ؾش ضز ظط ز ی operator قطط...), <= <,, >, (= ؾ ی دبضا شط مساض ضز ظط اؾز. زض ن ضسی و دبضا شط ز ضا یؿی ث ن ضر دیف فطو ػ ط = زض ظط طفش ی ق ز. شس first ا ی ضو ضز و ثب قطط ف ق ر ا ی زاقش ثبقس ضا ثط ی طزا س و ثطای ثبظیبثی یه ضو ضز اؾشفبز ی ق ز. زض ن ضسی و ؿ س ضو ضز ضا ثر ا ی ثبظیبثی و ی اظ شس get اؾشفبز یى ی. $user = DB::table('users')->where('name', 'John')->first(); var_dump($user->name);$users = DB::table('users')->where('votes', '>', 100)->get(); زض ن ضسی و ثر ا ی مساض یه ؾش ذبل ضا و زض یه قطط نسق یى س ضا ثبظیبثی و ی اظ شس pluck اؾشفبز ب ؾش ضا ث آ یس ی. ا ط ثر ا ی یؿز مبزیط یه ؾش ضا اوكی و ی اظ شس lists اؾشفبز مساض ؾش ضا ث ػ ا دبضا شط ث آ یس ی و ذط ػی آ یه آضای اؾز ی س ا ی ب ؾش زی طی ضا ث ػ ا دبضا شط ز ث آ ثس ی سب و یس آضای مبزیط ا ؾش ثبق س. $name = DB::table('users')->where('name', 'John')->pluck('name'); $roles = DB::table('roles')->lists('title'); $roles = DB::table('roles')->lists('title', 'name'); استفاد اص OR یا AND بشای جذا کشدى ضشط ا ثطای ای وبض وبفی اؾز ثؼس اظ شس where و قشی شس orwhere ضا اؾشفبز و ی : $users = DB::table('users') ->where('votes', '>', 100) ->orwhere('name', 'John') : عبارت باال معادل کوئری زیر است ->get(); SELECT * FROM users WHERE votes > 100 OR name = 'john' ا ط ز ثبض اظ شس where اؾشفبز و ی ؼبز AND زض ظط طفش ی ق ز. شس بی ثؿیبض ظیبزی ػ ز زاض س و ث ػ ز ع ال ی قس جؼض ػ ز ظب ب ث ظ ض اضح زض زاوی ز ثطای اعالػبر ثیكشط ث ای ؼب طاػؼ و یس. استفاد اص هتذ ای جاد یی ضشط ض ث شط ثب وس یؿی و شط اؾشفبز اظ شس بی ػبز یی ؿز. زض ظب بی ظیط و ئطی بی ؼبز آ ب ضا قش ا : Rasekhoon.net ص ف ح 43

//SELECT * FROM users WHERE id=1 LIMIT 1; $admin = DB::table('users')->whereId(1)->first(); //SELECT * FROM users WHERE id=2 AND email = 'john@doe.com' LIMIT 1; $john = DB::table('users') ->whereidandemail(2, 'john@doe.com') ->first(); // //SELECT * FROM users WHERE name='jane' OR age = 22 LIMIT 1; $jane = DB::table('users') ->wherenameorage('jane', 22) ->first(); استفاد اص Having Group By Order By با ک ئشی بیلذس $users = DB::table('users') ->orderby('name', 'desc') ->groupby('count') ->having('count', '>', 100) ->get(); ی ی س ا ی اظ LIMIT ث طا آفؿز زض و ئطی اؾشفبز و ی. $users = DB::table('users')->skip(10)->take(5)->get(); زض ظب ثبال و ئطی ی یس و اظ ضو ضز ز زض ػس users ضاا شربة و سب ۵ ضو ضز ضا اوكی و. )ق بض عاضی ضو ضز ب اظ نفط قط ع یك ز) JOINکشدى ثب شس join ی س ا یس ز یب ؿ س ػس ضا ثب JOIN و یس. ای شس ۴ دبضا شط ی یطز و ا ی ػس ی و یر ا ی ث آ دی س ثع ی دبضا شط بی ثؼسی فی س بیی و ثبیس ثب ؿب ی ثبق س ضا لطاض یس ی. DB::table('users') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->join('orders', 'users.id', '=', 'orders.user_id') ->select('users.id', 'contacts.phone', 'orders.price') زض ظب ثبال ث ؾ ػس orders, users, contacts دی س ظز قس اؾز. ->get(); Rasekhoon.net ص ف ح 44

ثب و ئطی ثی سض ی س ا ی ثب س اثغ ػ ؼی (... min, (count, max, س ب مبزیط اؾىب ط یه ؾش ضا حبؾج وطز مساضی اؾىب ط س یس ی و س $users = DB::table('users')->count(); $price = DB::table('orders')->max('price'); $price = DB::table('orders')->min('price'); $price = DB::table('orders')->avg('price'); $total = DB::table('users')->sum('votes'); دسج کشدى( INSERT ) ثب اؾشفبز اظ شس insert ی س ا ی زض ػس ضز ظط مبزیطی ضا زضع و ی. مبزیط ضا زض آضای لطاض ی ز ی ث ػ ا دبضا شط ث آ ی ز ی. و یس بی آضای ب ؾش ػس ضز ظط اؾز. DB::table('users')->insert( ['email' => 'john@example.com', 'votes' => 0] ); $id = DB::table('users')->insertGetId( ['email' => 'john@example.com', 'votes' => 0] ); DB::table('users')->insert([ ['email' => 'taylor@example.com', 'votes' => 0], ['email' => 'dayle@example.com', 'votes' => 0] ]); ا ط زض ػس شب فی س id ث ن ضر Auto-increment اؾز ی س ا یس اظ شس insertgetid اؾشفبز و یس و ثؼس اظ زضع و ئطی id و س یس قس ضا ث ػ ا ذط ػی ثط ی طزا س. زض ظب ؾ زض ثبال ب ظ ض و ی ثی یس زض ن ضسی و ثر ا یس ؿ سی ضو ضز ضا ثب زضع و یس وبفیؿز ضو ضز ب ضا ث ػ ا دبضا شط ث شس insert ثس ی ثب یط اظ ػسا و ی. ب س صسسا ی (UPDATE) ثب اؾشفبز اظ شس update و یه آضای ث ا یس ی و و یس بی آ ب ؾش ضز ظط زض ػس مبزیط آ مساض ػسیس ی ثبقس ضو ضز ب ضا آدسیز و ی. Rasekhoon.net ص ف ح 45

DB::table('users') ->where('id', 1) ->update(['votes' => 1]); ی ی س ا ی ثب شس increment مساض ؾش ی ضا یه احس افعایف ز ی یب ثب شوط یه دبضا شط ز سؼساز افعایف ضا ث ع ض ظب زض ظب ظیط ۵ احس كرم و ی. شس decrement مساض ضا وب ف ی ز س ب س شس لج ی ػ یى س. DB::table('users')->increment('votes'); DB::table('users')->increment('votes', 5); DB::table('users')->decrement('votes'); DB::table('users')->decrement('votes', 5); DB::table('users')->increment('votes', 1, ['name' => 'John']); زض ظب آذط ب ظ ض و ی ثی یس ی س ا ی ػ افعایف ضا ا ؼب ز ی آدسیز ؾبیط مبزیط ؾش بی ػس ضا و ث ػ ا دبضا شط ؾ اظ ع آضای ث آ ی ز ی. حزف کشدى( Delete ) زض الضا ثب اؾشفبز اظ شس delete ی س ا ی ضو ضزی یب ضو ضز بی ػس ضا حصف و ی. ا ط اظ قطط اؾشفبز ى ی ضو ضز بی ػس حصف ی ق س. ثب اؾشفبز اظ شس truncate ی س ا ی مبزیط یه ػس ضا حصف و ی ثب ای سفب ر و truncate یؾ قطعی ی یط ؾطیؼشط اظ delete ؿز یب سفب ر زی ط آ ای اؾز و id بی اذشهبل زاز قس ث ضو ضز ب ضا reset یى س ی زض delete ای یؿز. DB::table('users')->where('votes', '<', 100)->delete(); DB::table('users')->delete(); DB::table('users')->truncate(); ثب اؾشفبز اظ شس union ی س ا ی ز و ئطی ضا ثب اػش بع و ی : $first = DB::table('users')->whereNull('first_name'); $users = DB::table('users')->whereNull('last_name')->union($first)->get(); Rasekhoon.net ص ف ح 46